iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
Vibe Coding

從 GAS 到 Cloudflare D1:AI Agent 如何打造、接手並重構真實便當系統系列 第 3

Day 3|為什麼第一版手機版便當系統,我選了 GAS + Google Sheets?

  • 分享至 

  • xImage
  •  

day3

Day 2 回頭整理了公司原本那套便當系統。

它不是完全不能用。

反而因為已經真的跑過一段時間,我更清楚哪些東西是必要的:

  • 要能讓同事用手機快速下單
  • 要知道今天有哪些餐點
  • 要記住誰訂了什麼
  • 要處理取餐樓層
  • 要留下歷史紀錄
  • 後續還可能碰到餘額、管理、統計

問題變成:

如果要把這套系統重新做一次,第一版到底該用什麼?

我當時沒有先決定「我要學哪個框架」。

而是先看限制。


我需要的不是一個很炫的架構

一開始的目標很單純:

先做出一個真的有人可以用的手機版便當系統。

而且它有幾個很現實的條件。

第一,使用人數不大。

它不是公開 SaaS,也不是每天幾十萬 request 的服務,而是公司內部使用。

第二,資料量不算誇張。

本質上就是:

  • 使用者
  • 菜單
  • 訂單
  • 金額
  • 一些管理資料

第三,我希望管理方式越直覺越好。

如果每次改個菜單、調個資料,都要開資料庫工具、寫 SQL、部署後端,對這種內部工具來說反而太重。

所以當時我看到 Google Sheets 的時候,第一個反應是:

這東西很像一個大家都看得懂的後台。

資料直接攤在表格裡。

要看訂單,就看 Orders。

要看使用者,就看 Users。

要改資料,也不需要另外做一套管理介面。

對第一版來說,這非常有吸引力。


Google Sheets 不只是拿來存資料

如果只有 Google Sheets,當然還不夠。

讓這個組合變得實用的是 Google Apps Script,也就是 GAS。

GAS 可以直接操作 Google Sheets,也可以提供 Web App 與 API。

於是架構很快就變成:

手機瀏覽器
    ↓
React 前端
    ↓
Google Apps Script
    ↓
Google Sheets

Google Sheets 負責資料。

GAS 負責邏輯。

React 負責使用者看到的介面。

這個組合現在回頭看很樸素,但在當時很合理。

因為我需要的不是「最終架構」。

而是:

能不能先把真實流程搬上手機,而且真的能用。


這也是 AI 很適合介入的地方

我原本熟悉的工作環境,並不是 GAS + React 這套組合。

我的主要經驗比較偏銀行資訊系統、COBOL、AIX、PHP、JavaScript、SQL 這類型。

如果完全靠自己從零摸索,我可能會先花很多時間研究:

  • GAS 要怎麼部署
  • 前端怎麼呼叫
  • Google Sheets 怎麼當資料來源
  • 欄位怎麼設計
  • 登入怎麼處理
  • 錯誤怎麼回傳

但有 AI 之後,開發方式變得很不一樣。

我不需要先把整套技術學完,才有資格開始做。

我可以先說:

我要做一個公司內部便當系統。

使用者用手機操作。

後端先用 Google Sheets。

需要有使用者、菜單、訂單與管理功能。

然後邊做邊問。

某個 API 不熟,就查那個 API。

某段 React 不會,就先讓 AI 幫我拆。

某個 GAS 行為有問題,就針對問題去修。

這也成了我後來持續使用 AI Agent 開發的原因之一。

它改變的不是「我不用懂程式」。

而是:

我不用等到每一項技術都學完整,才開始解決問題。


第一版其實很快就長出來了

當時系統逐漸有了幾個核心區塊。

例如:

  • 使用者資料
  • 菜單
  • 訂單
  • 取餐樓層
  • 管理者功能
  • 餘額相關資料

這些資料放在 Google Sheets 裡,GAS 再負責讀寫與驗證。

對使用者來說,看到的則是一個手機可以直接操作的網頁。

這和原本桌面感比較重的舊系統相比,體驗已經完全不同。

也因為 Google Sheets 本身就是表格,所以開發過程中有一個很大的優點:

資料非常容易看。

如果今天有人說:

我的訂單好像怪怪的。

我可以直接打開 Sheet 看。

如果管理者想確認某個人的資料,也可以直接查表。

在系統還小的時候,這種透明度非常方便。


第一版最重要的,不是技術漂亮

現在回頭看,我反而覺得第一版最重要的價值,不是用了 GAS,也不是用了 React。

而是:

它很快把「想法」變成了「真的有人使用的系統」。

很多 side project 最後停在:

想需求
↓
選技術
↓
研究框架
↓
再研究一下
↓
沒有上線

這套便當系統沒有走這條路。

它很快就進入:

做第一版
↓
真的有人用
↓
發現問題
↓
繼續修改

而一旦真的有人開始使用,需求就不再是我自己想像出來的。

它會直接冒出來。

例如:

  • 誰可以幫別人操作?
  • 訂單怎麼統計?
  • 餘額到底以哪裡為準?
  • 菜單怎麼管理?
  • 不同店家怎麼處理?
  • 登入身份怎麼確認?

這些問題,都是系統「活起來」之後才開始變得重要。


但方便,也開始變成代價

Google Sheets 最大的優點,是資料很好看。

後來我才慢慢發現:

這同時也是它開始變複雜的地方。

當 Sheet 只是拿來記錄資料時,非常舒服。

但當系統開始要求:

  • 訂單不能亂掉
  • 金額要能對得起來
  • 歷史紀錄不能被改壞
  • 不同角色看到不同資料
  • 多個操作不能互相踩到
  • 資料來源要有明確權威

事情就開始不只是「把資料寫進一格」這麼簡單。

原本很直覺的表格,也慢慢開始承擔後端系統才會遇到的責任。

而這也成了下一階段的問題。


本系列實作專案

這不是純概念示範,而是一套持續開發中的便當訂購系統。

文章主要寫的是「為什麼這樣演進」,實際程式碼、文件與後續變化則持續放在 GitHub。

GitHub:

https://github.com/henryfir456/bento-order-app


下一篇

當資料開始不只是「放著方便看」,而是牽涉訂單、金額、歷史與多人操作時,

我才開始發現:

Google Sheets 正在承擔的責任,已經和我一開始想像的不太一樣了。


上一篇
Day 2|不是先寫 Code:我怎麼把舊便當系統拆成可移轉的需求清單?
下一篇
Day 4|當 GAS + Sheets 真的開始被使用後,試算表就不再只是試算表
系列文
從 GAS 到 Cloudflare D1:AI Agent 如何打造、接手並重構真實便當系統9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言